package cn.b.sky.mes.pp.dao;

import java.util.List;

import cn.b.sky.mes.pp.model.ProductOrder;
import cn.b.sky.mes.pp.model.condition.ProductionOrderCondition;
import org.apache.ibatis.annotations.Param;

public interface ProductOrderDao {

  /**
   * 
   * <strong>Title : selectProductOrdersByCondition<br></strong>
   * <strong>Description : </strong>分页查询产品订单<br> 
   * <strong>Create on : 2016-5-20 上午9:23:36<br></strong>
   * <p>
   * @param condition 条件
   * @return
   * List<ProductOrder>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<ProductOrder> selectProductOrdersByCondition(ProductionOrderCondition condition);

  /**
   * 
   * <strong>Title : selectProductOrderCount<br></strong>
   * <strong>Description : </strong>查询产品订单总数<br> 
   * <strong>Create on : 2016-5-20 上午9:23:48<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int selectProductOrderCount(ProductionOrderCondition condition);

  /**
   * 
   * <strong>Title : insertProductOrder<br></strong>
   * <strong>Description : </strong>保存产品订单<br> 
   * <strong>Create on : 2016-5-20 上午9:24:12<br></strong>
   * <p>
   * @param order
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void insertProductOrder(ProductOrder order);

  /**
   * 
   * <strong>Title : selectProductOrdersByPk<br></strong>
   * <strong>Description : </strong>通过主键查询产品订单<br> 
   * <strong>Create on : 2016-5-20 上午9:24:22<br></strong>
   * <p>
   * @param siteCode
   * @param productOrderNum
   * @return
   * ProductOrder
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public ProductOrder selectProductOrdersByPk(@Param("siteCode") String siteCode,
      @Param("productOrderNum") String productOrderNum);

  /**
   * 
   * <strong>Title : updateProductOrder<br></strong>
   * <strong>Description : </strong>修改产品订单<br> 
   * <strong>Create on : 2016-5-20 上午9:24:43<br></strong>
   * <p>
   * @param order
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateProductOrder(ProductOrder order);

  /**
   * 
   * <strong>Title : updateNoCreateProductOrder<br></strong>
   * <strong>Description : </strong>修改非创建状态的订单，主要用于子订单更新状态<br> 
   * <strong>Create on : 2016-5-20 上午9:55:41<br></strong>
   * <p>
   * @param order
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void updateNoCreateProductOrder(ProductOrder order);
  /**
   * 
   * <strong>Title : deleteProductOrderByPK<br></strong>
   * <strong>Description : </strong>删除产品订单<br> 
   * <strong>Create on : 2016-5-20 上午9:24:58<br></strong>
   * <p>
   * @param siteCode
   * @param productOrderNum
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteProductOrderByPK(@Param("siteCode") String siteCode,
      @Param("productOrderNum") String productOrderNum);

}
